When data processing systems first were used commercially on a widespread basis, the standard system configuration was an autonomous mainframe or host computer which could be accessed only through locally-attached terminals. Few people, at that time, perceived any significant benefit from interconnecting host computers.
Over time, it came to be understood that significant commercial advantages could be gained by interconnecting or networking host computers. Data originating with users at one host computer could readily and rapidly shared with users located at other host computers, even where those other host computers were many miles away. Also, the functional capabilities of a given host computer could be treated as a resource that could be shared not only among locally-attached users but also among remote, network-attached users. Mainframe networks of this type came to be generically referred to as Wide Area Networks, commonly abbreviated to WANs.
Certain parallels exist between the development of mainframe computer technology and the later development of personal computer technology. Early personal computers were relatively unsophisticated devices intended for use by a single user in a standalone configuration. Eventually, the same kinds of needs (data sharing and resource sharing) that drove the development of mainframe networks began to drive the development of networks of personal computers and auxiliary devices, such as printers and data storage devices. While mainframe networks developed primarily using point-to-point connections among widely-separated mainframes, personal computer networks developed using shared or common transmission media to interconnect personal computers and auxiliary devices within a geographically-limited area, such as a building or even an area within a building. Networks of this type came to be generically referred to as Local Area Networks or LANs.
Different LAN technologies exist. Currently, the most popular LAN technology is Ethernet technology. In an Ethernet LAN, personal computers and auxiliary devices share a common bi-directional data bus. In the following description, LAN-attached devices will be generically referred to as stations or LAN stations. Any transmission-capable LAN station may initiate transmission on the bus and every transmission propagates in both directions and is received by every LAN station attached to the same bus, including the transmitting station.
Because several LAN stations can attempt to claim the bus at the same time, a Collision Sense Multiple Access/Carrier Detect (CSMA/CD) protocol exists to resolve conflicts among contending users. The protocol is relatively simple. When a station has data to transmit, it "listens" to the bus to see if the bus is already carrying data from another station. If the bus is found not to be in use, the listening station begins its own transmission immediately. If the bus is found to be in use, the station with data to send waits for a predetermined interval before restarting the bus acquisition process.
Since electrical signals require time to propagate down any conductor, two or more stations can listen, find the bus quiet at the time, and begin transmitting simultaneously. If that happens, data from the transmitting stations collide and becomes corrupted. If a transmitting station doesn't detect the same data it transmitted, that station sends a short jamming signal and stops transmitting. The jamming signal increases the chances that all other transmitting stations will detect the collision and stop transmitting themselves. Following a random delay, each transmitting station restarts the bus acquisition process.
The same user needs (data sharing and resource sharing) which drove the development of Ethernet LANS have driven the creation of Ethernet networks consisting of multiple Ethernet LANs interconnected through boundary devices known as LAN bridges or switches. Point-to-point connections or links between LAN switches permit traffic originating in any given Ethernet LAN to be transported to a LAN station connected to any other LAN in the same switched Ethernet network. A given switch-to-switch link typically carries traffic from multiple sources concurrently. Although Ethernet was originally developed as a shared-media LAN technology, "switched" Ethernet technology is being developed to support full duplex links.
The CSMA/CD protocol, while providing a fairly effective flow control mechanism within a single shared Ethernet LAN, is ineffective in controlling flow (preventing congestion) on switched links. To provide flow control on switch-to-switch links, at least one standards group, the IEEE 802.3 working group, has developed a flow control standard (IEEE 802.3x) for such links. Under the standard (as currently developed), a station that wants to inhibit transmission of data from one or more upstream stations on the network generates a pause frame which contains, among other things, a pause time and a reserved multicast address. Pause times are expressed as a number of time slots, with a time slot being the time required to transmit a sixty-four byte packet on the link. While IEEE 802.3x flow control was designed primarily to overcome the lack of flow control on full duplex Ethernet links, it can also be used on shared segments.
A link-controlling station, such as a bridge, can respond to the reserved multicast address to pause traffic on the entire link for the specified pause time. In theory only, it is possible to send a pause frame with a destination address which identifies a specific LAN station instead of a link-controlling station. In current practice, it is a violation of the standard to generate a pause frame having anything other than a reserved multicast address as the destination address.
A general problem with the approach currently defined in the standard is that flow control is performed on a link level rather than on a per-station level. As a consequence, a flow control initiated to deal with a congested path may end up interfering with flow along uncongested paths as well.
Extending the standard to permit flow control signals to be addressed to individual stations solves some, but not all, problems. The length of time between successive pause frames can be defined as a control interval. If a flow-controlling station generates pause frames requiring that n different traffic sources pause at the beginning of a control interval, then all of the traffic sources will pause at substantially the same time, reducing the number of active connections on a controlled link by n. However, as the traffic sources complete their individual pause times, multiple sources may resume sending at substantially the same time. As a consequence of this unintended "synchronization" of traffic actions at individual sources, the traffic rate at the flow-controlling station may oscillate between too little traffic (at the onset of source pause times) and too much traffic (as pause times for multiple stations are completed at or about the same time).